Tengo una aplicación WPF que admite la recepción de datos de arrastrar y soltar desde Chrome. Cuando IDataObject los datos, el formato de datos es "Chromium Web Custom MIME Data Format". Esto se debe a que uso un tipo MIME personalizado para dataTransfer.setData desde JavaScript. Este es el comportamiento esperado.
Mi pregunta es, ¿cuál es la especificación real de estos datos?
Los datos son un MemoryStream de bytes que puedo convertir en una cadena Unicode. Dado un tipo MIME de application/x-myapp.document+text y un valor de {F5F5A3C3-3594-430B-988F-BA1C0154201E} la cadena tendrá el siguiente aspecto:
" \0\u0001\0#\0application/x-myapp.document+text\0&\0{F5F5A3C3-3594-430B-988F-BA1C0154201E}"Si divido la cadena por los terminadores nulos, son seis partes:
(_determinado como el tamaño de los datos (longitud) y no es ningún carácter real de una cadena)\u0001 ( determinado como el número de elementos de datos )#application/x-myapp.document+text ( el tipo MIME personalizado )&{F5F5A3C3-3594-430B-988F-BA1C0154201E} ( el valor personalizado ) He observado que #2 es solo un número y parece representar el número de pares de valores clave en los datos (mimo/valor). Luego tengo mi tipo MIME y el valor real. Parece que estos datos son el HTML 5 Drag Data Store , o posiblemente la drag store item list .
Así que de nuevo, mis preguntas finales:
También tendré que hacer esto con Firefox y los datos parecen ser similares, pero posiblemente con una codificación diferente. Entonces, si esta información también es conocida, sería útil.
También intenté usar un BinaryReader pero sin una especificación no pude leer los datos de una manera que produzca resultados correctos, y he estado usando la especificación HTML 5 ( https://html.spec.whatwg.org/multipage /dnd.html#the-drag-data-store ).